package cn.skyclass.beans
{
	import mx.collections.ArrayCollection;
	
	/**
	 * 作为树节点的接口定义，主要是 parent 和 children 属性
	 */
	[Bindable]
	public interface ITreeNode extends IUIBean
	{
		/**
		 * 父节点属性
		 */
		function get parent():ITreeNode;
		function set parent(value:ITreeNode):void;		
		
		/**
		 * 包含的孩子同样要是 ITreeNode 列表
		 */
		function get children():ArrayCollection;
		
		/**
		 * 此节点是否处于展开状态
		 */
		function get expanded():Boolean;
		function set expanded(value:Boolean):void;		
		
		/**
		 * 树节点的打开和关闭的图标
		 */
		function getIconOpen():Class;		
		function getIconClose():Class;
		
		function addChild(child:ITreeNode):Boolean;
		function removeChild(child:ITreeNode):Boolean;
		
		function sortChildren():void;
	}
}